1. Field of the Invention
The present invention relates generally to an apparatus and method for stopping iterative decoding in a CDMA (Code Division Multiple Access) mobile communication system, and in particular, to an apparatus and method for stopping iterative decoding caused by an occurrence of an error.
2. Description of the Related Art
In general, a CDMA mobile communication system refers to a mobile communication system that performs radio communication by adopting the CDMA technique. Such a mobile communication system performs forward error correction (FEC) in order to correct errors caused by the noises generated in transport channels. For the forward error correction, the CDMA mobile communication system typically uses a convolutional code or a turbo code.
In particular, the turbo code has been adopted as an error correction code in both a synchronous 3GPP2 (3rd Generation Partnership Project 2) system and an asynchronous 3GPP (3rd Generation Partnership Project) system, both recently attracting attention as a 3rd generation mobile communication system. It is well known that the turbo code is superior in performance to the existing convolutional code, especially during high-speed data transmission. In addition, the turbo code, a kind of the FEC code, is advantageous in that it can increase a reliability of transmission data by effectually correcting an error caused by the noises generated in the transport channels.
An existing convolutional encoder, however, outputs decoded data after performing decoding once on each input frame. In contrast, a turbo encoder generally uses an iterative decoding scheme for outputting decoded data after performing decoding several times on each input frame.
It is very important for the iterative decoding scheme to determine the time for stopping the decoding. In order to reduce a decoding time and minimize power consumption for the decoding, the iterative decoding scheme must frequently check an occurrence of the error for a decoding frame. For this purpose, a turbo code including a CRC (Cyclic Redundancy Check) bit is generally used.
In the CRC-based iterative decoding, a transmitter adds CRC bits to each input frame received at a turbo encoder, and a receiver then performs error detection using the CRC bits on a frame output in every iterative decoding process (or at every iteration). If no error has occurred in the frame in the error detection process, the receiver stops the decoding on the frame.
The CRC-based error detection can detect almost all errors by increasing the number of the CRC bits, thus making it possible to minimize an increase in a frame error rate (FER) due to the stop of the decoding. However, when applied to the actual system, the CRC-based error detection has several problems. A detailed description of the problems will be given below.
First, the 3GPP system reduces unnecessary iterations (or iterative decoding processes) by checking a frame error at every iteration at the receiver, and also inserts a CRC bit in each transport block in order to measure reliability of the decoded data at the receiver. However, when the CRC bit is inserted in each transport block, the transmitter concatenates transport blocks on its transport channel and segments the concatenated transport block into code blocks, so that the CRC bits may be separated from their associated transport blocks during encoding. This problem will be described in detail with reference to FIGS. 1 and 2. FIG. 1 is a block diagram illustrating a channel multiplexing process and a channel coding process used in the 3GPP downlink. FIG. 2 illustrates an exemplary method for segmenting a concatenated transport block into code blocks for encoding.
The CRC-related parts of FIGS. 1 and 2 will be described herein below. As illustrated in FIG. 2, the concatenated transport block is segmented into code blocks. As a result, the CRC bit may be separated from its associated transport block as stated above, in the code block segmentation process. Therefore, in the case of a non-CRC code block, the CRC can no longer be used as a stopping criterion in the iterative decoding process.
In FIGS. 1 and 2 where the 3GPP system uses the turbo code as an error correction code, if the size (or length) Xi of a concatenated transport block of an ith transport channel is larger than 5114 bits, the concatenated transport block is segmented into Ci=┌Xi/51141┐ code blocks. Here, the size Ki of each code block is Ki=┌Xi/Ci┐ bits, and for the insufficient bits, 0-value are inserted in the starting portion bits of the first code block. The code blocks created in this way are transmitted over the transport channel after performing their turbo encoding process. The receiver then performs turbo decoding on the received code blocks. The turbo decoding is performed in a unit of the code block determined by the transmitter. Therefore, as illustrated in FIG. 2, the CRC bits added to the rear of the transport block may be separated from their transport blocks in the code block segmentation process. In the case of the non-CRC code blocks, the CRC bits can no longer be used as a criterion for stopping the decoding in the turbo decoding process. Therefore, the existing 3GPP system using the CRC as a stopping criterion for the turbo decoding has the above problem.
Second, in the existing 3GPP system using the CRC as a criterion for stopping the turbo decoding, when the code block, i.e., a frame input to the turbo decoder, is small in size, the CRC bits used in each frame effect overload during data transmission, thus reducing transmission efficiency. For example, if the size of the input frame received per second is N and the total number of the CRC bits in use is C, then the actual data transmission efficiency becomes N/(N+C). Therefore, if the C is not greatly smaller than N, the transmission efficiency will be reduced to far below 1.0.
Third, in the case of the existing 3GPP or 3GPP2 system using the CRC as a criterion for stopping the turbo decoding, if the turbo decoder mis-recognizes an erroneous codeword as an error-corrected codeword due to excessive errors generated in the transport channel (this state is called “undetectable error event”), then the CRC will continuously indicate error detection at every iteration (or in every iterative decoding process). Therefore, the turbo decoder continuously iterates the decoding as many times as the maximum iteration number, and even after the iterations, outputs an erroneous codeword. In this case, it is preferable to stop the decoding by detecting the “undetectable error event” before the decoding is iterated as many times as the maximum iteration number. However, it is not possible to detect the “undetectable error event” by simply using only the CRC bits. Further, in this case, the turbo decoder must iterate the decoding as many times as the maximum iteration number, thus increasing the power consumption and the decoding time.
In order to solve the above problems, research has been made into a method of stopping iteration of the decoding on the turbo code without using the CRC. For example, the proposed method is to use the minimum absolute value of log likelihood ratio (LLR) values, which are output from the turbo decoder at every iteration in the iterative decoding process for the turbo code. That is, this method stops the decoding if the minimum value of absolute LLR values output at every iteration is higher than a threshold. This method shows relatively excellent FER performance and reduces an average decoding iteration number, thus contributing to a decrease in the power consumption. In addition, it is very easy to realize the method by hardware. However, in the above-stated method, the threshold for guaranteeing the excellent FER performance depends upon Eb/No and the frame size. Accordingly, the threshold must be sensitively changed in response to a change in the values (of Eb/No and the frame size). Particularly, in the actual system having difficulty in accurately measuring Eb/No of a received signal, it is very difficult to accurately estimate a change in the values, caused by a change in the transmission environment, and thus, the method using the minimum value of absolute LLR values with existing threshold is also not proper to be used as stopping criteria for the iterative decoding.
The problems, which may occur in the error correction method using the turbo code, will be summarized below.
First, the problems, which may occur in the method for stopping the turbo decoding using the CRC, are as follows.
(1) In the 3GPP system, the CRC bits for the transport blocks can be separated from their associated transport blocks in the code block segmentation process, so that the CRC can no longer be used as a criterion for error detection.
(2) If the frame input to the turbo encoder is small in size (i.e., if the transport block is small in size in the 3GPP system), the CRC bits used in each input frame may become overload, causing a transmission rate loss.
(3) When the turbo decoder mis-recognizes an erroneous codeword as an error-corrected codeword due to excessive errors generated in the transport channel, the CRC will continuously indicate error detection at every iteration. Therefore, the turbo decoder continuously iterates the decoding as many times as the maximum iteration number, and even after the iterations, outputs an erroneous codeword. In this case, it is preferable to stop the decoding by detecting the “undetectable error event” before the decoding is iterated as many times as the maximum iteration number. However, it is not possible to detect the “undetectable error event” by simply using only the CRC. Further, in this case, the turbo decoder must iterate the decoding as many times as the maximum iteration number, thus increasing the power consumption and the decoding time.
Second, the problems, which may occur in the method for stopping the turbo decoding using the LLR values, are as follows.
(1) In the actual transport channel environment, there is a need for a decoding stopping criterion, which is independent of the frame size and can be obtained without measuring Eb/No. However, in the conventional method, the stopping criterion is dependent upon the values of the frame size and Eb/No.
(2) In order to stop the iterative decoding while obtaining meaningful FER performance, it is necessary to change a threshold used in the LLR-based turbo decoding stopping method according to the Eb/No and the frame size. However, in the actual environment, it is very difficult to implement a proper estimator.